#ifndef UTIL_MESSAGEWINDOW
#define UTIL_MESSAGEWINDOW
#include <boost/shared_ptr.hpp>
namespace Util{
class MessageWindow
{
public:
	virtual ~MessageWindow(){}
public:
	enum Type{
		TYPE_OK = 0,
		TYPE_OK_CANCEL = 1,
		TYPE_ABORT_RETRY_IGNORE = 2,
		TYPE_YES_NO_CANCEL = 3,
		TYPE_YES_NO = 4,
		TYPE_RETRY_CANCEL = 5,
		TYPE_CANCEL_TRY_CONTINUE = 6,
	};
	enum Icon{
		ICON_STOP = 0x10,
		ICON_QUESTION = 0x20,
		ICON_EXCLAMATION = 0x30,
		ICON_INFORMATION = 0x40,
	};
	enum Result{
		RESULT_FAIL = 0,
		RESULT_OK = 1,
		RESULT_CANNCEL = 2,
		RESULT_ABORT = 3,
		RESULT_RETRY = 4,
		RESULT_IGNORE = 5,
		RESULT_YES = 6,
		RESULT_NO = 7,
		RESULT_CLOSE = 8,
	};

	virtual void setMessage(const char* message) = 0;
	virtual void setCaption(const char* caption) = 0;
	virtual void setType(Type type) = 0;
	virtual void setIcon(Icon icon) = 0;
	virtual Result show()const = 0;

	typedef boost::shared_ptr<MessageWindow> ptr;
	static ptr create();
};
}//Util
#endif